package javase.CollectionAndMap.Collection;

import java.util.ArrayList;
import java.util.Collection;

public class ArrayListDemo {
    public static void main(String[] args) {
        /**
         * 常用API
         * public boolean add(E e)   添加
         * public bollean clear()      清空
         * public boolean remove(int index)   删除
         * public boolean contains(Object o)   判断是否包含某个元素
         * public int size()   获取长度
         * public boolean isEmpty()   判断是否为空
         *
         *
         * 注意点：
         * Collection是一个接口，我们不能直接创建他的对象。
         * 所以，现在我们学习他的方法时，只能创建他实现类的对象。
         * 实现类：ArrayList
         */

       Collection<String> list = new ArrayList<>();

       //1.添加元素
        //细节1：如果我们要往List系列集合中添加数据，那么方法永远返回true，因为List系列的是允许元素重复的。
        //细节2：如果我们要往Set系列集合中添加数据，如果当前要添加元素不存在，方法返回true，表示添加成功。
        //如果当前要添加的元素已经存在，方法返回false，表示添加失败。
        //因为Set系列的集合不允许重复。
        list.add("aaa");
        list.add("bbb");
        list.add("ccc");
        System.out.println(list);

        //2.清空
        //list.clear();

        //3.删除
        //细节1：因为Col1ection里面定义的是共性的方法，所以此时不能通过索引进行删除。只能通过元素的对象进行删除。
        //细节2：方法会有一个布尔类型的返回值，删除成功返回true，删除失败返回fa1se
        list.remove("bbb");
        System.out.println(list);

        //4.判断是否包含某个元素
        //细节：底层是依赖equals方法进行判断是否存在的。
        // 所以，如果集合中存储的是自定义对象，也想通过contains方法来判断是否包含，那么在javabean类中，一定要重写equals方法。
        /**
         * 因为contains方法在底层依赖equals方法判断对象是否一致的。
         * 如果存的是自定义对象，没有重写equals方法，那么默认使用object类中的equals方法进行判断，而object类中equals方法，依赖地址值进行判断。
         * “需求：如果同姓名和同年龄，就认为是同一个学生。
         * 所以，需要在自定义的Javabean类中，重写equals方法就可以了。
         */
        boolean res = list.contains("bbb");
        System.out.println(res);

        //5.获取长度
        int size = list.size();
        System.out.println(size);

        //6.判断是否为空
        boolean empty = list.isEmpty();
        System.out.println(empty);
    }
}
